(function($, own) {
	var map, gpsPoint, baiduPoint, gpsAddress, baiduAddress,getCityCB;

	own.getLocation = function(callback) {
		getCityCB = callback;
		//根据IP获取城市  
		var myCity = new BMap.LocalCity();
		myCity.get(this.getCityByIP);

		//获取GPS坐标  
		if(navigator.geolocation) {
			navigator.geolocation.getCurrentPosition(this.showMap, this.handleError, {
				enableHighAccuracy: true,
				maximumAge: 1000
			});
		} else {
			alert("您的浏览器不支持使用HTML5来获取地理位置服务");
		}
		
	}

	//根据IP获取城市  
	own.getCityByIp = function(rs) {
		var cityName = rs.name;
		alert("根据IP定位您所在的城市为:" + cityName);
	}

	own.handleError = function(value) {
		switch(value.code) {
			case 1:
				alert("位置服务被拒绝");
				break;
			case 2:
				alert("暂时获取不到位置信息");
				break;
			case 3:
				alert("获取信息超时");
				break;
			case 4:
				alert("未知错误");
				break;
		}
	}


	own.showMap = function(value) {
		var longitude = value.coords.longitude;
		var latitude = value.coords.latitude;
		map = new BMap.Map("map");
//		alert("坐标经度为：" + latitude + "， 纬度为：" + longitude); 
		gpsPoint = new BMap.Point(longitude, latitude); // 创建点坐标  
		map.centerAndZoom(gpsPoint, 15);

		//根据坐标逆解析地址  
		var geoc = new BMap.Geocoder();
		geoc.getLocation(gpsPoint, own.getCityByCoordinate);

		BMap.Convertor.translate(gpsPoint, 0, own.translateCallback);
	}

	own.getCityByCoordinate = function(rs) {
		gpsAddress = rs.addressComponents;
		var address = "GPS标注：" + gpsAddress.province + "," + gpsAddress.city + "," + gpsAddress.district + "," + gpsAddress.street + "," + gpsAddress.streetNumber;
	}

	own.translateCallback = function(point) {
		baiduPoint = point;
		var geoc = new BMap.Geocoder();
		geoc.getLocation(baiduPoint, own.getCityByBaiduCoordinate);
	}

	own.getCityByBaiduCoordinate = function(rs) {
		baiduAddress = rs.addressComponents;

		var address = "百度标注：" + baiduAddress.province + "," + baiduAddress.city + "," + baiduAddress.district + "," + baiduAddress.street + "," + baiduAddress.streetNumber;

		var marker = new BMap.Marker(baiduPoint); // 创建标注  
		map.addOverlay(marker); // 将标注添加到地图中  
		var labelbaidu = new BMap.Label(address, {
			offset: new BMap.Size(20, -10)
		});
		marker.setLabel(labelbaidu); //添加百度标注 
		
		getCityCB(baiduAddress);
	}
})(mui, window.localcity = {});